/**
 * 组件节点分组
 */
export interface GroupNode {
  groupId: string,
  groupName: string,
  data: Array<Node>
}

/**
 * 流程性技能节点
 */
export interface Node {
  nodeId?: string,               //  节点id
  name: string,             //  节点名称
  type: string,             //  节点类型  start  end  custom
  nodeType?: string // 节点类型
}

/**
 * drag
 */
export interface DragStart extends Node {
  x: number,          //  开始拖动时，相对x坐标
  y: number,          //  开始拖动时，相对y坐标
}

/**
 * 分支信息
 * @see 一个状态，会有多个后续节点
 */
export interface Branch {
  branchId: string,             //  线自身id
  nextStateId: string,            //  下一个状态Id
  nextStateType: string,        //  下一个状态类型
  text: string,                 //  分支文本内容
}

/**
 * 状态数据
 */
export interface StateNode extends DragStart {
  stateId: string,          //  状态id
  branches: Array<Branch>
}

/**
 * rect 计算属性 position
 */
export interface RectPosition {
  startX: number,
  startY: number,
  endX: number,
  endY: number,
  originX: number,
  originY: number
}